// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import FormInput from './index'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 组件导入
   */
  components: { FormInput },

  /**
   * 属性注册 (抽取以便查阅)
   */
  props: CORE.WEB.FormCommon,

  /**
   * 计算属性 (慎用箭头函数)
   */
  computed: {
    /**
     * 是否有标签插槽
     */
    hasLabelSlot() {
      return this.formItem.label || (this.$scopedSlots && this.$scopedSlots.label)
    },

    /**
     * 是否有前缀
     */
    hasPrefix() {
      if (!this.$scopedSlots) return false
      return this.$scopedSlots.prefix
    },

    /**
     * 是否有后缀
     */
    hasSuffix() {
      if (!this.$scopedSlots) return false
      return this.$scopedSlots.suffix
    },

    /**
     * 输入框属性
     */
    inputProps() {
      return this.$props
    },

    /**
     * 表单项
     */
    formItem() {
      return {
        label: this.noLabel ? '' : this.label,
      }
    },
  },

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 改变事件
     */
    toChange(value) {
      this.$emit('change', value)
    },

    /**
     * 失焦事件
     */
    toBlur(value) {
      this.$emit('blur', value)
    },

    /**
     * 回车事件
     */
    toEnter(value) {
      this.$emit('enter', value)
    },
  },
}
